昨天談到使用者觸發 Request 去後端要資料,今天談發出 Request 前,一個常見的重要步驟:填表單。
使用者時常要輸入一些資料,例如註冊時要輸入帳號、密碼、確認密碼、電話號碼等等。而輸入資料的方式,最基礎的就是<form>
標籤。
這邊模擬一個登入畫面:
其 HTML 長這樣:
<form method="get" action="loginHandler.php">
帳號:<input type="text"><br>
密碼:<input type="password"><br>
<input type="submit" value="送出">
</form>
解釋一下各 tag:
1.method 表示採用的 HTTP 的溝通方法。
2.<input>
表示輸入欄,可以選擇 type 屬性,短一點的文字 text, 密碼 password, 日期 date...完整可以看W3C網頁。
3.送出的按鈕也是一種<input>
,其 type 為 submit,value 表示顯示的文字(瀏覽器預設為提交)。
4.最後,action 參數表示要將使用者輸入的資料,送到哪一份程式檔案去做處理(此例為 loginHandler.php)。在這份程式中利用$_REQUEST
這種方式去取得 HTTP Request 的參數。
這樣就可以做到輸入資料囉!
不過,由於使用 submit 按鈕,瀏覽器預設會有 refresh 的動作,在使用者體驗上未必是最佳解,且瀏覽器是無記憶能力的(stateless),使用者輸入的資料若沒有利用一些機制儲存起來(例如 cookie),只要網頁 refresh 就會不見(例如登入,如果沒有讓瀏覽器記住"已經登入過",頁面刷新就又會變成尚未登入@@),所以在一些情況下,我們會希望頁面不要刷新。
甚至目前前端框架也各自提供了送出 Request 參數的解法,所以直接使用<form>
就我個人的感覺是變少了,但了解 HTTP 底層是這樣運作,仍舊是非常重要。